#!/bin/bash
# 描述: shell自动化管理配置基础设施环境
# 版本: v0.1
# 日期: 20230723
# 作者: 肖晨光

# 基本功能
os_type="$1"
[ "${os_type}" == "centos" ] && cmd_type="yum" || cmd_type="apt-get"
# 加载项目配置属性信息
root_dir=$(dirname $PWD)
[ -f $root_dir/conf/config ] && source $root_dir/conf/config || exit


# 加载功能函数
source ${subfunc_dir}/${base_func_menu}
source ${subfunc_dir}/${base_func_usage}
source ${subfunc_dir}/${base_func_exec}
# 基础内容
array_target=(基础 免密码 host 主机名 软件源 退出)


# 主函数区域
main(){
  while true
  do
    base_env_menu
    read -p "请输入你要操作的选项id值: " target_id
    if [ ${#array_target[@]} -ge ${target_id} ]; then
      case ${array_target[$target_id-1]} in 
        "基础") 
      echo -e "\e[33m开始执行基础环境部署...\e[0m"
            expect_install
            sshkey_create
            hosts_create
            ;;
        "免密码")
          echo -e "\e[33m跨主机免密码认证...\e[0m"
          read -p "请输入你要批量免密码认证的主机列表范围(示例:{30-36}): " num_list
          ip_list=$(create_ip_list "${target_net}" "${num_list}")
          echo "需要进行跨主机免密认证的主机列表范围是: " ${ip_list}
          sshkey_auth_func "${ip_list}"
          ;;
        "host")
          echo -e "\e[33m同步集群hosts...\e[0m"
          read -p "请输入你要批量同步集群hosts的主机列表范围(示例:{30-36}): " num_list
          ip_list=$(for i in $(eval echo ${num_list}); do echo -n "${target_net}.${i} "; done; echo)
          scp_file ${ip_list} "${host_file}" "${host_target_dir}"
          ;;
        "主机名")
          echo -e "\e[33m设定集群主机名...\e[0m"
          read -p "请输入设定集群主机名列表范围(示例:{30-36}): " num_list
          ip_list=$(for i in $(eval echo ${num_list}); do echo -n "${target_net}.${i} "; done; echo)
          set_hostname "${ip_list}"
          ;;
        "软件源")
          echo -e "\e[33m更新软件源...\e[0m"
          read -p "请输入你要批量更新软件源主机列表范围(示例:{30-36}): " num_list
          ip_list=$(create_ip_list "${target_net}" "${num_list}")
          repo_update "${ip_list}"
          ;;
        "退出")
          echo -e "\e[33m退出...\e[0m"
          exit
          ;;
      esac
    else
      Usage
    fi
  done

}

# 调用区域
main

